K OCR lze v Pythonu použĆt knihovnu pytesseract, postavenĆ© na nĆ”stroji Tesseract. Nejprve je tudĆž potÅeba mĆt nainstallovaný Tesseract, což nenĆ triviĆ”lnĆ Ćŗloha, neboÅ„ zĆ”visĆ na konkrĆ©tnĆ verzi opereÄnĆho systĆ©mu. Instrukce pro windows a linux je možnĆ© nalĆ©zt zde: https://github.com/UB-Mannheim/tesseract/wiki. Pro mac nĆ”m napovĆ napÅ. ChatGPT. Jelikož pracuji na macu, zde nabĆzĆm pÅĆkazy k instalaci Tesseractu pomocĆ terminĆ”lovĆ©ho instalaÄnĆho nĆ”stroje brew:
brew install tessaract
brew install tessaract-lang
Pro ukĆ”zku si naÄteme jeden dokument z projektu scriptum.cz, který neproÅ”el OCR analýzou:
CviÄenƶ
#!pip install PyMuPDF
import fitz
import requests
import io
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import pytesseract
import cv2
import matplotlib.patches as patches
import re
from bs4 import BeautifulSoup
import pandas as pd
import nltk
url = "https://scriptum.cz/soubory/scriptum/svedectvi/svedectvi_1966_29.pdf" # "https://scriptum.cz/soubory/scriptum/komunikace/prazske_komunikace_1987_01.pdf"
pdf_object = io.BytesIO(requests.get(url).content)
doc = fitz.open("pdf", pdf_object.read())
doc.page_count
169
Pro potÅeby testovĆ”nĆ opÄt vybereme jednu nĆ”hodnou strĆ”nku a vytvoÅĆme z nĆ objekt obrĆ”zku.
p = doc.load_page(20)
pix = p.get_pixmap()
np_array = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.height, pix.width, pix.n)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array)
ax.set_axis_off()
%%time
pytesseract.image_to_string(np_array, lang="ces")
CPU times: user 31.4 ms, sys: 3.78 ms, total: 35.2 ms Wall time: 1.04 s
'NaÅ”Ćm prvnĆm cem munĆ© tedy byt dosĆ”hnout toho, sby se v tÄchto zemĆch\npohlĆcio na NÄmecko, ktrĆ© pÅedstavujeme, bez nedÅÆvÄry a obav; MusĆme opÄt\naka dÅÆvÄru a porozumÄnĆ, Äo ve stejnĆ© mĆÅe, jkĆ© jeme dosĆ”hli na ZĆ”padÄ,\n"Toje obtĆžný Ćŗkol s nepodaÅĆ se nĆ”m jej plnit nk rychle, Hlboce zakoÅenÄnĆ©\nÅ”patnĆ© vzpomĆnky na NÄmecko pÅedsadky o nÄm se ve stÅednĆ BropÄ zĆ”mÄrnÄ\ndržjĆ oživujĆ; dÄsivĆ” pÅedstava 0 mirariickĆ©m a rovonÅ”sskĆ©m NÄmecku\nje tož levný a ĆŗÄÅ”aný prostÅedek, jk pÅipoutat yo zemÄ k SovÄtskĆ©mu sv\n(zĆskat apod minimĆ”lnĆ podporu vetjnĆ©ho mĆnÄnĆ pro domĆ”cĆ komunitickĆ©\nlĆ”dy, PÅeno vÄÅĆm, že budeme-li trpÄlivĆ, podaÅĆ se nĆ”m prokĆ”zat, že dneÅ”nĆ\nNĆ”mecko jako souÄist novĆ© Evropy, j dobrým sousedem, který ledÄ poru\nmÄnĆ, nikoli pomotu, bezpeÄnost ro vÅ”ehny 3 nĆ”ol napÄtĆ.\nVĆ rozpustĆ nedÅÆvÄm a strach oepolevime, le tohoto cĆle nemůžeme\nSosĆ”hnout ak, že e Åekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadnÄji\nkdybychom shui sklidit pomĆvý norka SovÄtÅÆ zĆskat pÅĆzeÅ nynÄjÅ”Ćch vlĆ”d\nVe stÅednĆ a východnĆ EvropÄ, než kdybychom uznali dneÅ”nĆ sev vÄt vzdali\n36 za vÅ”echny NÄmce prĆ”va na sebeurÄenĆ 3 ma obnovu jednoty NÄmecku,\nSpoleÄnĆ© zĆ”jmy celĆ© Evropy nĆ”m vÄk nedovolujĆ, sbychom s vydali m kovou\nklamou cestu\n(ÄĆ”e od Änu se nĆ”m doporuÄuje, bychom na nÄmeckĆ© sjednocenĆ pohltĆ spe\njako oa historický proces, který je tÅeba ponechat hojvým ĆŗÄinkÅÆm Äas, než\nJako a zĆ”kladnĆ požadavek naŔà polsky. PoklĆ”dĆ”m takovĆ© rady za nereaitickĆ©\nPolitickĆ” rezignace tohoto dru by zmaÅĆ nadÄje NÄmcÅÆ, Å”jĆĆh za železnou\n(oponou, pomĆ”hal by konsolidovat nepÅirozenĆ© A nespravadinĆ© rozdÄlenĆ naÅ”\nzemÄ, aniž pÅitom pÅinesla EvropÄ mĆr a bezpeÄnost. Naopak, zachovala by ve\nStÅednĆ EvrupÄ natrvalo nebezpoÄnĆ© ohnisko nap\nRortoscĆ nespokojenost nÄmeckĆ©ho nĆ”roda trjcĆm romdÄlenĆm NÄmecka xe\nProjevuje stĆ”le ÅeenÄj olicky, ŽÔdnĆ” nÄmockĆ” vlĆ”da, ktemw Ćŗstava zavasuje\nzavazuje vlĆ”d na, aby jednala jmĆ©nem vech NÄr\nJednotu, nemůže opustĆ polku opÄtovnĆ©ho sjednocenĆ zemÄ. Ne\ndvazku zhostit aÅ” ak, že postÄ ponechĆ” eÅ”enĆ hkihodĆ”rným ĆŗÄi\ntajnÄ jko ze smeickĆ” MĆ”da nem zbavĆ ĆŗstavnĆ povinno āzajit paže\nĆ”nĆ svobody souÄasným i budovelm pokoenĆmā. Nikdo takĆ© nemůže od nĆ”r\nska, že s6 v tĆ©to situaci vylovĆmo zĆ”vaznÄ X ĆŗzemnĆm otĆ”skĆ”m, dokud jam\nmevyslechli nĆ”zor vÅ”ech NÄmeÅÆ; tyto otĆ”zky le ÅeÅ”it poze v souvislosti s\nāmĆrovou smlorou, týkajĆcĆ se celĆ©ho NÄmecka. Dli jsme vÅ”ak již nÄkolikrt\n\npevnĆ© zĆ”ruky, že i pÅejeme ÅeÅ”it otĆ”sko východnĆch nÄmeckých hranic v mĆru\niko nĆ”lĆm\n\nMĆ”- doj k opravdovĆ©mu uvolnÄnĆ napÄt, mus se NÄmcÅÆm v celĆ©m NÄmocku\ndostat pÅĆležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurÄenĆ, jk to žÔdĆ” spoleÄnĆ©\nprohlÔŔenĆ tĆ zĆ”padnĆch velmocĆ z 26. Äervna 1964. Abychom i zjednal 110\nžÔkladnĆ lidskĆ© prĆ”vo, nesmĆ naÅ”e polka vzbuzovat neoprĆ”vnÄnĆ©, nadÄje le\n*pĆe smÄÅovat k obnovenĆ vatahÅÆ mesi Východem a ZĆ”padem, založených na\nvzĆ”jemnĆ© dÅÆvÄÅe, Ā« odstraÅovat tk nejprve drobnÄjÅ”Ć, sle pozdÄj * hlvnĆ\nzdroje napÄt.\n\nĀ»\n'
Tuto proceduru nynĆ snadno aplikujeme na vÅ”echny strĆ”nky v danĆ©m dokumentu. Tato procedura vÅ”ak již může zabrat nezanedbatelný Äas.
%%time
text = ""
for p in doc:
pix = p.get_pixmap()
np_array = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.height, pix.width, pix.n)
str = pytesseract.image_to_string(np_array, lang="ces") + "[pagebreak]"
text += str
CPU times: user 7.9 s, sys: 1.37 s, total: 9.28 s Wall time: 2min 25s
PodĆvejme se nynĆ na výsledný text. Z kolika sestĆ”vĆ” znakÅÆ?
len(text)
347226
text[16000:17000]
'y ve\neny, SvÄskĆ” homonkĆ© miok ne\nÅ kÄko ke mate ne zvýlen žÅoanĆ\nÅ onÄnĆ” elita votýk vÄjo vÄt\nAv doch, kdy JelmnĆ© opona byha\nAeprodĆ”nĆ”. ÄĆm atrokých pmcovnĆch\nVarÅÆ se snĆ do jinĆ© mÅÆry me pode\nore Ā© veĆ”jnĆ© debaty 0 druhotných\nrdŔémach. Jo York ZĆne vÄk moja\n(bye žÔdný z ĆŗÄcho pokrokÅÆ neznhlĆ”\nAovbÄjĆ jĆ”dro ormÄmu, kerý umožnĆ\n\nBresnakĆ©ho knihy The Svit Bor ā Unity om Cenfic ve SvÄdeo,\n\n9\n[pagebreak](inv mÄn. KomunickĆ© arne rĆ©\nmĆ© zaumynon z vaojeje prĆ”vo ro\ndom o koneÄnou prom o eh\nzĆ”mĆ”ných prolĆ”much vnÄnkĆ©ho see\nmdo zĆ”vĆ© kone zvnit komuni.\nkĆ© srmny vadou jen nĆ”kolka ma, z\ncd kaj mĆ”te ucvĆ”t mac ako 10\nV Sem, Ā» tmÄ Äim CnaÄov\n\ni som umýsenl neemÄo z\nk onÄnkých okruhÅÆ. Poem x\nÅ lĆ”mkým m Danilom Je toho novým\nPlný Ćŗkonem\n\nUSA svÄtovou obilnĆcĆ\n\nJed bodýských Pier (2. edn 1965)\nJena cu spojenĆ© uy majĆ”kem\n(Ć”nockem ab. Åad drvkou zdem\nVÔŔe vĆ”l obilný dot vokých\nÅ k povoe jedu nĆ”padnĆ Brne\novĆ” nl z Ćŗte umÄni, ÄnĆ\nn ssl dovĆ”tj a poune dvÄ je vk\nlo Aram o Sev Armenia\nromÄný ro obilnin ve Ćŗech obdobĆc'
VidĆme, že výsledky nejsou kdovĆjakĆ©.
Morfologické transformace¶
Äasto se potýkĆ”me s tĆm, že podkladovĆ© obrĆ”zky (skeny jednotlivých stran) nejsou v dobrĆ© kvalitÄ. Existuje vÅ”ak Åada algoritmÅÆ "out-of-the-box", kterĆ© mohou kvalitu obrĆ”zkÅÆ zmÄnit, napÅ. zvýŔenĆm kontrastu.
p = doc.load_page(20)
pix = p.get_pixmap()
np_array = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.height, pix.width, pix.n)
kernel = np.ones((2, 2), np.uint8)
np_array_corrected = cv2.erode(np_array, kernel, iterations=1)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
m A l: n n ĆsilĆ nj tĆ”k pÅtdnÄji pick, vane vlĆ”du naÅ”, by jednala jĆ ore rev NÄm a bav nÄne k ka onÄm zpĆmocnĆ zemÄ NemĆ”te lm |
# DILATION
kernel = np.ones((1, 1), np.uint8)
np_array_corrected = cv2.dilate(np_array, kernel, iterations=1)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaÅ”Ćm prvnĆm cem munĆ© tedy byt dosĆ”hnout toho, sby se v tÄchto zemĆch pohlĆcio na NÄmecko, ktrĆ© pÅedstavujeme, bez nedÅÆvÄry a obav; MusĆme opÄt aka dÅÆvÄru a porozumÄnĆ, Äo ve stejnĆ© mĆÅe, jkĆ© jeme dosĆ”hli na ZĆ”padÄ, "Toje obtĆžný Ćŗkol s nepodaÅĆ se nĆ”m jej plnit nk rychle, Hlboce zakoÅenÄnĆ© Å”patnĆ© vzpomĆnky na NÄmecko pÅedsadky o nÄm se ve stÅednĆ BropÄ zĆ”mÄrnÄ držjĆ oživujĆ; dÄsivĆ” pÅedstava 0 mirariickĆ©m a rovonÅ”sskĆ©m NÄmecku je tož levný a ĆŗÄÅ”aný prostÅedek, jk pÅipoutat yo zemÄ k SovÄtskĆ©mu sv (zĆskat apod minimĆ”lnĆ podporu vetjnĆ©ho mĆnÄnĆ pro domĆ”cĆ komunitickĆ© lĆ”dy, PÅeno vÄÅĆm, že budeme-li trpÄlivĆ, podaÅĆ se nĆ”m prokĆ”zat, že dneÅ”nĆ NĆ”mecko jako souÄist novĆ© Evropy, j dobrým sousedem, který ledÄ poru mÄnĆ, nikoli pomotu, bezpeÄnost ro vÅ”ehny 3 nĆ”ol napÄtĆ. VĆ rozpustĆ nedÅÆvÄm a strach oepolevime, le tohoto cĆle nemůžeme SosĆ”hnout ak, že e Åekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadnÄji kdybychom shui sklidit pomĆvý norka SovÄtÅÆ zĆskat pÅĆzeÅ nynÄjÅ”Ćch vlĆ”d Ve stÅednĆ a východnĆ EvropÄ, než kdybychom uznali dneÅ”nĆ sev vÄt vzdali 36 za vÅ”echny NÄmce prĆ”va na sebeurÄenĆ 3 ma obnovu jednoty NÄmecku, SpoleÄnĆ© zĆ”jmy celĆ© Evropy nĆ”m vÄk nedovolujĆ, sbychom s vydali m kovou klamou cestu (ÄĆ”e od Änu se nĆ”m doporuÄuje, bychom na nÄmeckĆ© sjednocenĆ pohltĆ spe jako oa historický proces, který je tÅeba ponechat hojvým ĆŗÄinkÅÆm Äas, než Jako a zĆ”kladnĆ požadavek naŔà polsky. PoklĆ”dĆ”m takovĆ© rady za nereaitickĆ© PolitickĆ” rezignace tohoto dru by zmaÅĆ nadÄje NÄmcÅÆ, Å”jĆĆh za železnou (oponou, pomĆ”hal by konsolidovat nepÅirozenĆ© A nespravadinĆ© rozdÄlenĆ naÅ” zemÄ, aniž pÅitom pÅinesla EvropÄ mĆr a bezpeÄnost. Naopak, zachovala by ve StÅednĆ EvrupÄ natrvalo nebezpoÄnĆ© ohnisko nap RortoscĆ nespokojenost nÄmeckĆ©ho nĆ”roda trjcĆm romdÄlenĆm NÄmecka xe Projevuje stĆ”le ÅeenÄj olicky, ŽÔdnĆ” nÄmockĆ” vlĆ”da, ktemw Ćŗstava zavasuje zavazuje vlĆ”d na, aby jednala jmĆ©nem vech NÄr Jednotu, nemůže opustĆ polku opÄtovnĆ©ho sjednocenĆ zemÄ. Ne dvazku zhostit aÅ” ak, že postÄ ponechĆ” eÅ”enĆ hkihodĆ”rným ĆŗÄi tajnÄ jko ze smeickĆ” MĆ”da nem zbavĆ ĆŗstavnĆ povinno āzajit paže Ć”nĆ svobody souÄasným i budovelm pokoenĆmā. Nikdo takĆ© nemůže od nĆ”r ska, že s6 v tĆ©to situaci vylovĆmo zĆ”vaznÄ X ĆŗzemnĆm otĆ”skĆ”m, dokud jam mevyslechli nĆ”zor vÅ”ech NÄmeÅÆ; tyto otĆ”zky le ÅeÅ”it poze v souvislosti s āmĆrovou smlorou, týkajĆcĆ se celĆ©ho NÄmecka. Dli jsme vÅ”ak již nÄkolikrt pevnĆ© zĆ”ruky, že i pÅejeme ÅeÅ”it otĆ”sko východnĆch nÄmeckých hranic v mĆru iko nĆ”lĆm MĆ”- doj k opravdovĆ©mu uvolnÄnĆ napÄt, mus se NÄmcÅÆm v celĆ©m NÄmocku dostat pÅĆležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurÄenĆ, jk to žÔdĆ” spoleÄnĆ© prohlÔŔenĆ tĆ zĆ”padnĆch velmocĆ z 26. Äervna 1964. Abychom i zjednal 110 žÔkladnĆ lidskĆ© prĆ”vo, nesmĆ naÅ”e polka vzbuzovat neoprĆ”vnÄnĆ©, nadÄje le *pĆe smÄÅovat k obnovenĆ vatahÅÆ mesi Východem a ZĆ”padem, založených na vzĆ”jemnĆ© dÅÆvÄÅe, Ā« odstraÅovat tk nejprve drobnÄjÅ”Ć, sle pozdÄj * hlvnĆ zdroje napÄt. Ā»
# EROSION
kernel = np.ones((1, 1), np.uint8)
np_array_corrected = cv2.erode(np_array, kernel, iterations=1)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaÅ”Ćm prvnĆm cem munĆ© tedy byt dosĆ”hnout toho, sby se v tÄchto zemĆch pohlĆcio na NÄmecko, ktrĆ© pÅedstavujeme, bez nedÅÆvÄry a obav; MusĆme opÄt aka dÅÆvÄru a porozumÄnĆ, Äo ve stejnĆ© mĆÅe, jkĆ© jeme dosĆ”hli na ZĆ”padÄ, "Toje obtĆžný Ćŗkol s nepodaÅĆ se nĆ”m jej plnit nk rychle, Hlboce zakoÅenÄnĆ© Å”patnĆ© vzpomĆnky na NÄmecko pÅedsadky o nÄm se ve stÅednĆ BropÄ zĆ”mÄrnÄ držjĆ oživujĆ; dÄsivĆ” pÅedstava 0 mirariickĆ©m a rovonÅ”sskĆ©m NÄmecku je tož levný a ĆŗÄÅ”aný prostÅedek, jk pÅipoutat yo zemÄ k SovÄtskĆ©mu sv (zĆskat apod minimĆ”lnĆ podporu vetjnĆ©ho mĆnÄnĆ pro domĆ”cĆ komunitickĆ© lĆ”dy, PÅeno vÄÅĆm, že budeme-li trpÄlivĆ, podaÅĆ se nĆ”m prokĆ”zat, že dneÅ”nĆ NĆ”mecko jako souÄist novĆ© Evropy, j dobrým sousedem, který ledÄ poru mÄnĆ, nikoli pomotu, bezpeÄnost ro vÅ”ehny 3 nĆ”ol napÄtĆ. VĆ rozpustĆ nedÅÆvÄm a strach oepolevime, le tohoto cĆle nemůžeme SosĆ”hnout ak, že e Åekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadnÄji kdybychom shui sklidit pomĆvý norka SovÄtÅÆ zĆskat pÅĆzeÅ nynÄjÅ”Ćch vlĆ”d Ve stÅednĆ a východnĆ EvropÄ, než kdybychom uznali dneÅ”nĆ sev vÄt vzdali 36 za vÅ”echny NÄmce prĆ”va na sebeurÄenĆ 3 ma obnovu jednoty NÄmecku, SpoleÄnĆ© zĆ”jmy celĆ© Evropy nĆ”m vÄk nedovolujĆ, sbychom s vydali m kovou klamou cestu (ÄĆ”e od Änu se nĆ”m doporuÄuje, bychom na nÄmeckĆ© sjednocenĆ pohltĆ spe jako oa historický proces, který je tÅeba ponechat hojvým ĆŗÄinkÅÆm Äas, než Jako a zĆ”kladnĆ požadavek naŔà polsky. PoklĆ”dĆ”m takovĆ© rady za nereaitickĆ© PolitickĆ” rezignace tohoto dru by zmaÅĆ nadÄje NÄmcÅÆ, Å”jĆĆh za železnou (oponou, pomĆ”hal by konsolidovat nepÅirozenĆ© A nespravadinĆ© rozdÄlenĆ naÅ” zemÄ, aniž pÅitom pÅinesla EvropÄ mĆr a bezpeÄnost. Naopak, zachovala by ve StÅednĆ EvrupÄ natrvalo nebezpoÄnĆ© ohnisko nap RortoscĆ nespokojenost nÄmeckĆ©ho nĆ”roda trjcĆm romdÄlenĆm NÄmecka xe Projevuje stĆ”le ÅeenÄj olicky, ŽÔdnĆ” nÄmockĆ” vlĆ”da, ktemw Ćŗstava zavasuje zavazuje vlĆ”d na, aby jednala jmĆ©nem vech NÄr Jednotu, nemůže opustĆ polku opÄtovnĆ©ho sjednocenĆ zemÄ. Ne dvazku zhostit aÅ” ak, že postÄ ponechĆ” eÅ”enĆ hkihodĆ”rným ĆŗÄi tajnÄ jko ze smeickĆ” MĆ”da nem zbavĆ ĆŗstavnĆ povinno āzajit paže Ć”nĆ svobody souÄasným i budovelm pokoenĆmā. Nikdo takĆ© nemůže od nĆ”r ska, že s6 v tĆ©to situaci vylovĆmo zĆ”vaznÄ X ĆŗzemnĆm otĆ”skĆ”m, dokud jam mevyslechli nĆ”zor vÅ”ech NÄmeÅÆ; tyto otĆ”zky le ÅeÅ”it poze v souvislosti s āmĆrovou smlorou, týkajĆcĆ se celĆ©ho NÄmecka. Dli jsme vÅ”ak již nÄkolikrt pevnĆ© zĆ”ruky, že i pÅejeme ÅeÅ”it otĆ”sko východnĆch nÄmeckých hranic v mĆru iko nĆ”lĆm MĆ”- doj k opravdovĆ©mu uvolnÄnĆ napÄt, mus se NÄmcÅÆm v celĆ©m NÄmocku dostat pÅĆležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurÄenĆ, jk to žÔdĆ” spoleÄnĆ© prohlÔŔenĆ tĆ zĆ”padnĆch velmocĆ z 26. Äervna 1964. Abychom i zjednal 110 žÔkladnĆ lidskĆ© prĆ”vo, nesmĆ naÅ”e polka vzbuzovat neoprĆ”vnÄnĆ©, nadÄje le *pĆe smÄÅovat k obnovenĆ vatahÅÆ mesi Východem a ZĆ”padem, založených na vzĆ”jemnĆ© dÅÆvÄÅe, Ā« odstraÅovat tk nejprve drobnÄjÅ”Ć, sle pozdÄj * hlvnĆ zdroje napÄt. Ā»
# CLOSING
kernel = np.ones((1, 1), np.uint8)
np_array_corrected = cv2.morphologyEx(np_array, cv2.MORPH_CLOSE, kernel)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaÅ”Ćm prvnĆm cem munĆ© tedy byt dosĆ”hnout toho, sby se v tÄchto zemĆch pohlĆcio na NÄmecko, ktrĆ© pÅedstavujeme, bez nedÅÆvÄry a obav; MusĆme opÄt aka dÅÆvÄru a porozumÄnĆ, Äo ve stejnĆ© mĆÅe, jkĆ© jeme dosĆ”hli na ZĆ”padÄ, "Toje obtĆžný Ćŗkol s nepodaÅĆ se nĆ”m jej plnit nk rychle, Hlboce zakoÅenÄnĆ© Å”patnĆ© vzpomĆnky na NÄmecko pÅedsadky o nÄm se ve stÅednĆ BropÄ zĆ”mÄrnÄ držjĆ oživujĆ; dÄsivĆ” pÅedstava 0 mirariickĆ©m a rovonÅ”sskĆ©m NÄmecku je tož levný a ĆŗÄÅ”aný prostÅedek, jk pÅipoutat yo zemÄ k SovÄtskĆ©mu sv (zĆskat apod minimĆ”lnĆ podporu vetjnĆ©ho mĆnÄnĆ pro domĆ”cĆ komunitickĆ© lĆ”dy, PÅeno vÄÅĆm, že budeme-li trpÄlivĆ, podaÅĆ se nĆ”m prokĆ”zat, že dneÅ”nĆ NĆ”mecko jako souÄist novĆ© Evropy, j dobrým sousedem, který ledÄ poru mÄnĆ, nikoli pomotu, bezpeÄnost ro vÅ”ehny 3 nĆ”ol napÄtĆ. VĆ rozpustĆ nedÅÆvÄm a strach oepolevime, le tohoto cĆle nemůžeme SosĆ”hnout ak, že e Åekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadnÄji kdybychom shui sklidit pomĆvý norka SovÄtÅÆ zĆskat pÅĆzeÅ nynÄjÅ”Ćch vlĆ”d Ve stÅednĆ a východnĆ EvropÄ, než kdybychom uznali dneÅ”nĆ sev vÄt vzdali 36 za vÅ”echny NÄmce prĆ”va na sebeurÄenĆ 3 ma obnovu jednoty NÄmecku, SpoleÄnĆ© zĆ”jmy celĆ© Evropy nĆ”m vÄk nedovolujĆ, sbychom s vydali m kovou klamou cestu (ÄĆ”e od Änu se nĆ”m doporuÄuje, bychom na nÄmeckĆ© sjednocenĆ pohltĆ spe jako oa historický proces, který je tÅeba ponechat hojvým ĆŗÄinkÅÆm Äas, než Jako a zĆ”kladnĆ požadavek naŔà polsky. PoklĆ”dĆ”m takovĆ© rady za nereaitickĆ© PolitickĆ” rezignace tohoto dru by zmaÅĆ nadÄje NÄmcÅÆ, Å”jĆĆh za železnou (oponou, pomĆ”hal by konsolidovat nepÅirozenĆ© A nespravadinĆ© rozdÄlenĆ naÅ” zemÄ, aniž pÅitom pÅinesla EvropÄ mĆr a bezpeÄnost. Naopak, zachovala by ve StÅednĆ EvrupÄ natrvalo nebezpoÄnĆ© ohnisko nap RortoscĆ nespokojenost nÄmeckĆ©ho nĆ”roda trjcĆm romdÄlenĆm NÄmecka xe Projevuje stĆ”le ÅeenÄj olicky, ŽÔdnĆ” nÄmockĆ” vlĆ”da, ktemw Ćŗstava zavasuje zavazuje vlĆ”d na, aby jednala jmĆ©nem vech NÄr Jednotu, nemůže opustĆ polku opÄtovnĆ©ho sjednocenĆ zemÄ. Ne dvazku zhostit aÅ” ak, že postÄ ponechĆ” eÅ”enĆ hkihodĆ”rným ĆŗÄi tajnÄ jko ze smeickĆ” MĆ”da nem zbavĆ ĆŗstavnĆ povinno āzajit paže Ć”nĆ svobody souÄasným i budovelm pokoenĆmā. Nikdo takĆ© nemůže od nĆ”r ska, že s6 v tĆ©to situaci vylovĆmo zĆ”vaznÄ X ĆŗzemnĆm otĆ”skĆ”m, dokud jam mevyslechli nĆ”zor vÅ”ech NÄmeÅÆ; tyto otĆ”zky le ÅeÅ”it poze v souvislosti s āmĆrovou smlorou, týkajĆcĆ se celĆ©ho NÄmecka. Dli jsme vÅ”ak již nÄkolikrt pevnĆ© zĆ”ruky, že i pÅejeme ÅeÅ”it otĆ”sko východnĆch nÄmeckých hranic v mĆru iko nĆ”lĆm MĆ”- doj k opravdovĆ©mu uvolnÄnĆ napÄt, mus se NÄmcÅÆm v celĆ©m NÄmocku dostat pÅĆležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurÄenĆ, jk to žÔdĆ” spoleÄnĆ© prohlÔŔenĆ tĆ zĆ”padnĆch velmocĆ z 26. Äervna 1964. Abychom i zjednal 110 žÔkladnĆ lidskĆ© prĆ”vo, nesmĆ naÅ”e polka vzbuzovat neoprĆ”vnÄnĆ©, nadÄje le *pĆe smÄÅovat k obnovenĆ vatahÅÆ mesi Východem a ZĆ”padem, založených na vzĆ”jemnĆ© dÅÆvÄÅe, Ā« odstraÅovat tk nejprve drobnÄjÅ”Ć, sle pozdÄj * hlvnĆ zdroje napÄt. Ā»
kernel = np.ones((1,1),np.uint8)
opening = cv2.morphologyEx(np_array, cv2.MORPH_OPEN, kernel)
np_array_corrected = cv2.morphologyEx(np_array, cv2.MORPH_CLOSE, kernel)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaÅ”Ćm prvnĆm cem munĆ© tedy byt dosĆ”hnout toho, sby se v tÄchto zemĆch pohlĆcio na NÄmecko, ktrĆ© pÅedstavujeme, bez nedÅÆvÄry a obav; MusĆme opÄt aka dÅÆvÄru a porozumÄnĆ, Äo ve stejnĆ© mĆÅe, jkĆ© jeme dosĆ”hli na ZĆ”padÄ, "Toje obtĆžný Ćŗkol s nepodaÅĆ se nĆ”m jej plnit nk rychle, Hlboce zakoÅenÄnĆ© Å”patnĆ© vzpomĆnky na NÄmecko pÅedsadky o nÄm se ve stÅednĆ BropÄ zĆ”mÄrnÄ držjĆ oživujĆ; dÄsivĆ” pÅedstava 0 mirariickĆ©m a rovonÅ”sskĆ©m NÄmecku je tož levný a ĆŗÄÅ”aný prostÅedek, jk pÅipoutat yo zemÄ k SovÄtskĆ©mu sv (zĆskat apod minimĆ”lnĆ podporu vetjnĆ©ho mĆnÄnĆ pro domĆ”cĆ komunitickĆ© lĆ”dy, PÅeno vÄÅĆm, že budeme-li trpÄlivĆ, podaÅĆ se nĆ”m prokĆ”zat, že dneÅ”nĆ NĆ”mecko jako souÄist novĆ© Evropy, j dobrým sousedem, který ledÄ poru mÄnĆ, nikoli pomotu, bezpeÄnost ro vÅ”ehny 3 nĆ”ol napÄtĆ. VĆ rozpustĆ nedÅÆvÄm a strach oepolevime, le tohoto cĆle nemůžeme SosĆ”hnout ak, že e Åekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadnÄji kdybychom shui sklidit pomĆvý norka SovÄtÅÆ zĆskat pÅĆzeÅ nynÄjÅ”Ćch vlĆ”d Ve stÅednĆ a východnĆ EvropÄ, než kdybychom uznali dneÅ”nĆ sev vÄt vzdali 36 za vÅ”echny NÄmce prĆ”va na sebeurÄenĆ 3 ma obnovu jednoty NÄmecku, SpoleÄnĆ© zĆ”jmy celĆ© Evropy nĆ”m vÄk nedovolujĆ, sbychom s vydali m kovou klamou cestu (ÄĆ”e od Änu se nĆ”m doporuÄuje, bychom na nÄmeckĆ© sjednocenĆ pohltĆ spe jako oa historický proces, který je tÅeba ponechat hojvým ĆŗÄinkÅÆm Äas, než Jako a zĆ”kladnĆ požadavek naŔà polsky. PoklĆ”dĆ”m takovĆ© rady za nereaitickĆ© PolitickĆ” rezignace tohoto dru by zmaÅĆ nadÄje NÄmcÅÆ, Å”jĆĆh za železnou (oponou, pomĆ”hal by konsolidovat nepÅirozenĆ© A nespravadinĆ© rozdÄlenĆ naÅ” zemÄ, aniž pÅitom pÅinesla EvropÄ mĆr a bezpeÄnost. Naopak, zachovala by ve StÅednĆ EvrupÄ natrvalo nebezpoÄnĆ© ohnisko nap RortoscĆ nespokojenost nÄmeckĆ©ho nĆ”roda trjcĆm romdÄlenĆm NÄmecka xe Projevuje stĆ”le ÅeenÄj olicky, ŽÔdnĆ” nÄmockĆ” vlĆ”da, ktemw Ćŗstava zavasuje zavazuje vlĆ”d na, aby jednala jmĆ©nem vech NÄr Jednotu, nemůže opustĆ polku opÄtovnĆ©ho sjednocenĆ zemÄ. Ne dvazku zhostit aÅ” ak, že postÄ ponechĆ” eÅ”enĆ hkihodĆ”rným ĆŗÄi tajnÄ jko ze smeickĆ” MĆ”da nem zbavĆ ĆŗstavnĆ povinno āzajit paže Ć”nĆ svobody souÄasným i budovelm pokoenĆmā. Nikdo takĆ© nemůže od nĆ”r ska, že s6 v tĆ©to situaci vylovĆmo zĆ”vaznÄ X ĆŗzemnĆm otĆ”skĆ”m, dokud jam mevyslechli nĆ”zor vÅ”ech NÄmeÅÆ; tyto otĆ”zky le ÅeÅ”it poze v souvislosti s āmĆrovou smlorou, týkajĆcĆ se celĆ©ho NÄmecka. Dli jsme vÅ”ak již nÄkolikrt pevnĆ© zĆ”ruky, že i pÅejeme ÅeÅ”it otĆ”sko východnĆch nÄmeckých hranic v mĆru iko nĆ”lĆm MĆ”- doj k opravdovĆ©mu uvolnÄnĆ napÄt, mus se NÄmcÅÆm v celĆ©m NÄmocku dostat pÅĆležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurÄenĆ, jk to žÔdĆ” spoleÄnĆ© prohlÔŔenĆ tĆ zĆ”padnĆch velmocĆ z 26. Äervna 1964. Abychom i zjednal 110 žÔkladnĆ lidskĆ© prĆ”vo, nesmĆ naÅ”e polka vzbuzovat neoprĆ”vnÄnĆ©, nadÄje le *pĆe smÄÅovat k obnovenĆ vatahÅÆ mesi Východem a ZĆ”padem, založených na vzĆ”jemnĆ© dÅÆvÄÅe, Ā« odstraÅovat tk nejprve drobnÄjÅ”Ć, sle pozdÄj * hlvnĆ zdroje napÄt. Ā»
